Navigating content

ABSTRACT

One embodiment of the invention involves a computer-implemented method in which information obtained from a uniform resource locator is converted into at least one texture. The texture is mapped onto a surface of a three-dimensional object located in the virtual three-dimensional space thereby forming a three-dimensional navigation mechanism.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 09/784,840, filed on Feb. 15, 2001, by Yakov Kamen and Leon Shirman, and entitled “Method and Apparatus for a Three-Dimensional Web Navigator,” which claims the benefit of priority from Provisional Application Ser. No. 60/182,870, filed Feb. 16, 2000, and entitled “Mechanism and Apparatus for 3D Enabled Web-Navigator,” and incorporated herein by reference.

TECHNICAL FIELD

This invention relates generally to the field of browsers used on a network such as the Internet and more particularly to a three-dimensional browser.

BACKGROUND

Browsing the Internet using a browser is known in the art. Two popular browsers are Netscape Navigator, commercially available from Netscape Communications, and Internet Explorer, commercially available from Microsoft Corporation. A browser is a computer program that allows users to view hypermedia documents on the Internet such as the World Wide Web.

A user typically invokes a browser program on a local computer and interacts with the browser to control the selection and display of information found on the Internet. For instance, a user typically uses a mouse and clicks on a particular hypertext. The browser extracts the hidden reference information associated with the item and uses that information to determine which remote server should be contacted and which item should be requested from that server. A browser then closes the connection and displays the information to the user.

One disadvantage of using a two-dimensional browser is that, with respect to virtual three-dimensional web sites, it is difficult to determine where the two-dimensional browser is located relative to three-dimensional elements in a virtual three-dimensional web site. Accordingly, it is desirable to have a browser that addresses this disadvantage associated with the conventional browsers.

SUMMARY

One embodiment of the invention relates to creating a three-dimensional navigation mechanism such as a three-dimensional browser to navigate a virtual three-dimensional space. The virtual three-dimensional space may be created using a conventional three-dimensional graphics pipeline that converts two-dimensional information obtained from a uniform resource locator (URL) into a three-dimensional object or it may be an existing three-dimensional virtual space. Techniques of the invention include converting information obtained from a URL into a texture (e.g., logos such as ABC.™). The one or more textures are then mapped on a geometric surface (e.g., the surface of a three-dimensional object) located in the virtual three-dimensional space. This process creates the three-dimensional navigation mechanism.

In another embodiment of the invention, the position of the newly created three-dimensional navigation mechanism is determined using several steps. For instance, at least one event (e.g., a user selecting hypertext) associated with an image created from information obtained from a URL is intercepted. After an event is intercepted, an area of the surface on a three-dimensional object in the virtual three-dimensional space that is associated with the event is located. The location of the area of the surface is provided in three-dimensional coordinates. A two-dimensional position is then computed from the three-dimensional coordinates. After this two-dimensional position has been computed, information pertaining to the event is then placed on the surface of the three-dimensional object and displayed to the user. By implementing techniques of the invention, a network such as the Internet may be navigated in a virtual three-dimensional space using a three-dimensional navigation mechanism.

In another embodiment, two-dimensional navigators such as the Netscape Navigator and the Microsoft Explorer may be transformed into three-dimensional browsers to operate in a virtual three-dimensional space by implementing technique of the invention. Additional features, embodiments, and benefits will be evident in view of the figures and detailed description presented herein.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings are included to provide a further understanding of the invention, and are incorporated in and constitute a part of this specification. The drawings illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention. In the drawings

FIG. 1 illustrates a schematic diagram of a computer system in accordance with one embodiment of the invention;

FIG. 2 illustrates a block diagram of the program instructions used to create a three-dimensional navigation device to navigate a three-dimensional virtual space in accordance with one embodiment of the invention;

FIG. 3 illustrates a flow diagram for forming a three-dimensional browser in accordance with one embodiment of the invention; and

FIG. 4 illustrates a schematic diagram of a dimensional browser in accordance with one embodiment of the invention.

DETAILED DESCRIPTION

One embodiment of the invention relates to creating a three-dimensional navigation mechanism such as a three-dimensional browser that navigates a three-dimensional virtual space. The virtual three-dimensional space is created, for example, by using a conventional pipeline such as a three-dimensional graphics pipeline to convert information obtained from a uniform resource locator (URL) to be placed onto surfaces of the three-dimensional object. The method includes converting data obtained from a uniform resource locator (URL) into a texture. Specifically, the texture is then mapped on a surface of a three-dimensional object in a virtual three-dimensional space.

In another embodiment, the position of the three-dimensional browser in a virtual three-dimensional space is determined. In order to determine the position of the three-dimensional browser, several steps are implemented. For instance, at least one event (e.g. clicking on hypertext) associated with an image created from information obtained from a URL is intercepted. An area associated with the event is then located. The position of the surface on the three-dimensional object in a three-dimensional virtual space is computed. Thereafter, information pertaining to the event is placed on the surface of that three-dimensional object.

In yet another embodiment, two-dimensional navigators such as the Netscape Navigator and the Microsoft Explorer may be transformed into three-dimensional browsers configured to navigate a virtual three-dimensional space by implementing techniques of the invention.

In the description that follows, the invention is described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention as set forth in the claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.

FIG. 1 illustrates the computer system used to create and locate the three-dimensional browser in the virtual three-dimensional space. FIGS. 2 and 4 illustrate the program instructions used to implement techniques of the claimed invention. FIG. 3 illustrates a three-dimensional browser in a virtual three-dimensional space.

FIG. 1 illustrates one embodiment of a computer system 10 that implements the principles of the present invention. Computer system 10 comprises processor 17, storage device 18, and interconnect 15 such as bus or a point-to-point link. Processor 17 is coupled to the storage device 18 by interconnect 15. In addition, a number of user input/output devices, such as keyboard 20 and display 25, are coupled to chip set (not shown) that is then connected to processor 17. The chipset (not shown) is typically connected to processor 17 using an interconnect that is different from interconnect 15.

Processor 17 represents a central processing unit of any type of architecture (e.g., the Intel architecture, Hewlett Packard architecture, Sun Microsystems architecture, IBM architecture, etc.), or hybrid architecture. In addition, processor 17 could be implemented on one or more chips. Storage device 18 represents one or more mechanisms for storing data. Storage device 18 may include read only memory (ROM), random access memory (RAM), magnetic disk storage mediums, optical storage mediums, flash memory devices, and/or other machine-readable mediums. Interconnect 15 represents one or more buses (e.g., accelerated graphics port bus, peripheral component interconnect bus, industry standard architecture bus, X-Bus, video electronics standards association related to buses, etc.) and bridges (also termed as bus controllers).

While this embodiment is described in relation to a single processor computer system, the invention could be implemented in a multiprocessor computer system through a network such as that which is typically found in a corporation. In addition to other devices, one or more of a network 30 may be present. Network 30 represents one or more network connections for transmitting data over a machine-readable media.

FIG. 1 also illustrates that the storage device 18 has stored therein data 35 and program instructions (e.g., software, computer program, etc.) 36. Data 35 represents data stored in one or more of the formats described herein. Program instructions 36 represents the necessary code for performing any and/or all of the techniques described with reference to FIGS. 2 and 4. It will be recognized by one of ordinary skill in the art that storage device 18 preferably contains additional software (not shown), which is not necessary to understanding the invention.

FIG. 1 additionally illustrates that the processor 17 includes pipeline 40. Pipeline 40 is a conventional three-dimensional graphics pipeline that may be a program instruction pipeline (e.g., software, computer program, etc.) or hardware pipeline. Pipeline 40 is used for decoding instructions received by processor 17 into control signals and/or microcode entry points. In response to these control signals and/or microcode entry points, pipeline 40 performs the appropriate operations. In one embodiment, pipeline 40 creates a virtual three-dimensional space using information obtained from, for example, URLs. It will be appreciated, however, that techniques of the invention may be used at web sites in which virtual three-dimensional spaces have already been established. In yet another embodiment, pipeline 40 is used to project onto a screen a texture (e.g., ABC logo) or textures mapped on each surface of a three-dimensional object. The texture mapping and projecting processes involve conventional transformation processes. Details as to how texture mapping is performed is found in Method And Apparatus For Using A General Three-Dimensional (3D) Graphics Pipeline For Cost Effective Digital Image Video Editing, Transformation, and Representation, Ser. No. 10/004,737, filed on Dec. 4, 2001, by Yakov Kamen and Leon Shirman, which is incorporated by reference.

FIG. 2 illustrates a block diagram of the program instructions used to create and interact with a three-dimensional navigation device such as a browser to navigate a three-dimensional virtual space in accordance with one embodiment of the invention. System 100 includes format converter 110, pipeline 40, event interceptor 130, locator 140, area computing engine 150, and network (e.g., Internet) page 160. Each of these components is discussed below.

Format converter 110 receives information obtained from, for example, a URL. A URL is a unique address designated by a short character string used by browsers to identify a particular page of information on, for example, the World Wide Web. This information may be coded in a variety of programming languages such as in hypertext markup language (HTML), typically used to specify the contents and format of a hypermedia document in the WWW; JAVA a programming language used to create active Web pages; or, other suitable programming languages. After format converter 110 receives information from the URL, format converter 110 converts this information into an image such as a texture (e.g., ABC logo).

Generally, a texture is defined in a texture space having a two-dimensional coordinate system (u,v). The texture includes intensity values referred to as textural elements or “texels” that form a portion of the image. Pipeline 40 receives the texture(s) and performs texture mapping on the textures. Texture mapping transforms the texture defined in a texture space onto a surface of a three-dimensional object located in a three-dimensional space and then projects the transformed texture onto a display screen in the image space having a three-dimensional coordinate system (x′, y′, z′). The resultant display or image is defined in an image space having a two-dimensional coordinate system (x, y). This process is similar to applying a decal, which represents the texture, onto an object and then projecting the applied decal onto a surface of the three-dimensional object using pipeline 40.

The texture maps are then sent to network page 160 that displays the texture maps relative to the information inputted by a user such as a user selecting a particular hyperlink. FIG. 3, described in greater detail below, represents an example of network page 160 that may be created by implementing techniques of the invention.

Event interceptor 130, locator 140, and area computing engine 150 of FIG. 2 are program instructions that process an act or actions by a user that determines the position of the three-dimensional browser in the virtual three-dimensional space. Each of these components is described below.

Event interceptor 130 intercepts events associated with a URL. An event is an incident of importance in which a user performs some action that interacts with an object in a display. An example of an event includes a user inputting data by using an input/output device such as a mouse that clicks on an object (e.g., hyperlink) shown in the display. Another example is a user typing information on a keyboard for selecting hypertext that is sent to the processor. Yet another example is a user moving a mouse to focus on an icon that causes a pull down menu to be displayed.

After event interceptor 130 has processed the event, locator 140 locates an area (e.g. the surface of a three-dimensional object) associated with each event. For example, locator 140 determines that a user may have used a mouse to click on, for instance, a particular hypertext and locates the three-dimensional coordinates of that hypertext using conventional techniques. Hyperlinked text in a file that, when highlighted by a mouse or otherwise selected, causes the automatic display of a related file. Hypertext is usually denoted by having a different color or format (i.e., underlining) from the surrounding plain text.

Using pipeline 40 of computing system 10 and the three-dimensional coordinates of the area associated with the event, area computing engine 150 computes a two-dimensional position of that area. The purpose of transforming three-dimensional coordinates for the surface on a three-dimensional object to two-dimensional coordinates is to allow conventional operating systems such as the Windows operating system, commercially available from Microsoft Corporation, to recognize the position of the surface on the three-dimensional object. Conventional operating systems typically are limited to recognizing two-dimensional coordinates and are unable to accurately process three-dimensional coordinates.

One example of the operation of area computing engine 150 is a user who selects a particular hypertext displayed on the surface of a three-dimensional object in a three-dimensional virtual space by clicking on the hypertext. Area computing engine 150 receives the hypertext's three-dimensional coordinates in the virtual three-dimensional environment and uses pipeline 40 together with conventional techniques to transform the hypertext's three-dimensional coordinates to two-dimensional coordinates. This data, related to the surface on the three-dimensional object that displays the browser, is then transferred to the memory and the processor of the computing system.

After area computing engine 150 has computed the browser's position, an event driven result is applied to the surface of the three-dimensional object. For example, a reference associated with hypertext is displayed to the user.

Two-dimensional browsers such as Netscape Navigator an Internet Explorer may be transformed into a three-dimensional navigator by using the operations described relative to event interceptor 130, locator 140, area computing engine 150, and placing an event driven result on a geometric surface such as a surface on the three-dimensional object.

FIG. 3 illustrates an example of a browser and hypertext in an “immersive” type three-dimensional environment placed on three-dimensional object 505 such as a virtual three-dimensional room depicted in screen 500. In this embodiment, three-dimensional object 505 is created by pipeline 40 of computing system 10 from information obtained from the URL. The walls and floors of the virtual three-dimensional room are formed by separation lines 510, 511, 512, 513, and 514. Picture frame 501, hung on the walls, is an object that has a texture showing the ABC.™ logo. The ABC.™ logo is a hypertext to the ABC television station. If the user clicks on that texture, the ABC television station will appear on the wall defined by separation lines 510 and 511. Similarly, picture frame 502 has a hypertext to the FOX.™ television station that also allows a user to click on it causing the FOX.™ television station to appear to the user on the wall defined by separation lines 511, 512, and 513.

Picture frame 503 contains a texture (representing a browser) that was applied to a surface of three-dimensional object 505. If the user clicks on picture frame 503, the coordinates of picture frame 503 are given relative to screen 500 such as by origin 520 at x and y coordinates. Since the browser typically operates in conventional operating systems, the browser is unable to determine that it is in a three-dimensional space. The operating system in which the browser is used generally receives coordinates of the browser relative to its origin, as if the browser operates in a flat window on screen 500. However, the browser's coordinate system has its origin at 521 and the browser's axis (x′, y′) is not parallel to the axis of screen 500. Pipeline 40 obtains a three-dimensional coordinate of the browser relative to the three-dimensional world (not shown for simplicity) relative to axis (x″, y″ and z″) which then is transformed by area computing engine 150 into the browser's two-dimensional space (x′, y′). Any change such as the position of the browser is then updated by updating the texture map using pipeline 40.

FIG. 4 illustrates a flow diagram of one method of creating and interacting with a three-dimensional browser in a virtual three-dimensional space in accordance with one embodiment of the invention. Blocks 600 and 610 relate to the creation of the three-dimensional browser. At block 600, information from a URL is converted into one or more textures (e.g., logo such as the ABC logo). At block 610, one or more texture(s) are mapped on each surface of a three-dimensional object in the virtual three-dimensional space. On one surface of the three-dimensional object, an image created from this process displays the three-dimensional browser. Blocks 620 through 650 relate to determining the position of the three-dimensional browser. At block 620, at least one event associated with an image created from information obtained the URL is intercepted. At block 630, an area associated with the event is located. For example, the three-dimensional coordinates of an area on a three-dimensional object are determined. At block 640, two-dimensional coordinates of the area associated with the event is computed by using, for example, pipeline 40 and the three-dimensional coordinates of the area on the three-dimensional object. At block 650, the event driven result is placed on top of a surface of the three-dimensional object in the virtual three-dimensional space.

In the preceding detailed description, the invention is described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention as set forth in the claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. 

1. A method, comprising: displaying, by a computing device, a plurality of three-dimensional surfaces, including a first surface and a second surface; generating, by the computing device, a first identifier identifying a first content source having a first network address; displaying, by the computing device, the first identifier on the first surface; and in response to the first surface being selected, displaying, by the computing device, on less than all of the plurality of three-dimensional surfaces, content associated with the first content source.
 2. The method of claim 1, wherein the content associated with the first content source is displayed on at least the first surface.
 3. The method of claim 1, wherein the first identifier includes a texture generated based on information from the first content source.
 4. The method of claim 3, wherein the generated texture includes a logo associated with the first content source.
 5. The method of claim 1, further comprising: determining, by the computing device, that an area of the first surface having a set of three-dimensional coordinates has been selected; and determining, by the computing device, a set of two-dimensional coordinates corresponding to the set of three-dimensional coordinates.
 6. The method of claim 1, further comprising: generating, by the computing device, a second identifier based on a second address associated with a second content source; displaying, by the computing device, the second identifier on the second surface; and in response to the second surface being selected, displaying, by the computing device, on less than all of the plurality of three-dimensional surfaces, content associated with the second content source.
 7. The method of claim 6, wherein the content associated with the second content source is displayed on at least the second surface.
 8. One or more computer readable media having computer executable instructions stored thereon that, when executed, cause a computing device to: display a plurality of three-dimensional surfaces, including a first surface and a second surface; generate a first identifier identifying a first content source having a first network address; display the first identifier on the first surface; and in response to the first surface being selected, display on less than all of the plurality of three-dimensional surfaces, content associated with the first content source.
 9. The computer readable media of claim 8, wherein the content associated with the first content source is displayed on at least the first surface.
 10. The computer readable media of claim 8, wherein the first identifier includes a texture generated based on information from the first content source.
 11. The computer readable media of claim 10, wherein the generated texture includes a logo associated with the first content source.
 12. The computer readable media of claim 8, having additional computer executable instructions stored thereon that, when executed, cause the computing device to: determine that an area of the first surface having a set of three-dimensional coordinates has been selected; and determine a set of two-dimensional coordinates corresponding to the set of three-dimensional coordinates.
 13. The computer readable media of claim 8, having additional computer executable instructions stored thereon that, when executed, cause the computing device to: generate a second identifier based on a second address associated with a second content source; display the second identifier on the second surface; and in response to the second surface being selected, display on less than all of the plurality of three-dimensional surfaces, content associated with the second content source.
 14. An apparatus, comprising: at least one processor; and at least one memory storing computer readable instructions that, when executed by the at least one processor, cause the apparatus to perform: displaying a plurality of three-dimensional surfaces, including a first surface and a second surface; generating a first identifier identifying a first content source having a first network address; displaying the first identifier on the first surface; and in response to the first surface being selected, displaying on less than all of the plurality of three-dimensional surfaces, content associated with the first content source.
 15. The apparatus of claim 14, wherein the content associated with the first content source is displayed on at least the first surface.
 16. The apparatus of claim 14, wherein the first identifier includes a texture generated based on information from the first content source.
 17. The apparatus of claim 16, wherein the generated texture includes a logo associated with the first content source.
 18. The apparatus of claim 14, the at least one memory further storing computer readable instructions that, when executed by the at least one processor, cause the apparatus to perform: determining that an area of the first surface having a set of three-dimensional coordinates has been selected; and determining a set of two-dimensional coordinates corresponding to the set of three-dimensional coordinates.
 19. The apparatus of claim 14, the at least one memory further storing computer readable instructions that, when executed by the at least one processor, cause the apparatus to perform: generating a second identifier based on a second address associated with a second content source; displaying the second identifier on the second surface; and in response to the second surface being selected, displaying on less than all of the plurality of three-dimensional surfaces, content associated with the second content source.
 20. The apparatus of claim 19, wherein the content associated with the second content source is displayed on at least the second surface. 